- view_details  = local_assigns.fetch(:view_details, false)
- merge_request = local_assigns.fetch(:merge_request, nil)
- project       = local_assigns.fetch(:project) { merge_request&.project }
- ref           = local_assigns.fetch(:ref) { merge_request&.source_branch }

- link = commit_path(project, commit, merge_request: merge_request)
- cache_key = [project.full_path,
               ref,
               commit.id,
               Gitlab::CurrentSettings.current_application_settings,
               @path.presence,
               current_controller?(:commits),
               merge_request&.iid,
               view_details,
               commit.status(ref),
               I18n.locale].compact

= cache(cache_key, expires_in: 1.day) do
  %li.commit.flex-row.js-toggle-container{ id: "commit-#{commit.short_id}" }

    .avatar-cell.d-none.d-sm-block
      = author_avatar(commit, size: 36, has_tooltip: false)

    .commit-detail.flex-list
      .commit-content.qa-commit-content
        - if view_details && merge_request
          = link_to commit.title, project_commit_path(project, commit.id, merge_request_iid: merge_request.iid), class: "commit-row-message item-title"
        - else
          = link_to_markdown_field(commit, :title, link, class: "commit-row-message item-title")
        %span.commit-row-message.d-block.d-sm-none
          &middot;
          = commit.short_id
        - if commit.status(ref)
          .d-block.d-sm-none
            = render_commit_status(commit, ref: ref)
        - if commit.description?
          %button.text-expander.js-toggle-button
            = sprite_icon('ellipsis_h', size: 12)

        .commiter
          - commit_author_link = commit_author_link(commit, avatar: false, size: 24)
          - commit_timeago = time_ago_with_tooltip(commit.authored_date, placement: 'bottom')
          - commit_text =  _('%{commit_author_link} authored %{commit_timeago}') % { commit_author_link: commit_author_link, commit_timeago: commit_timeago }
          #{ commit_text.html_safe }

        - if commit.description?
          %pre.commit-row-description.js-toggle-content.append-bottom-8
            = preserve(markdown_field(commit, :description))

      .commit-actions.flex-row.d-none.d-sm-flex
        - if request.xhr?
          = render partial: 'projects/commit/signature', object: commit.signature
        - else
          = render partial: 'projects/commit/ajax_signature', locals: { commit: commit }

        - if commit.status(ref)
          = render_commit_status(commit, ref: ref)

        .js-commit-pipeline-status{ data: { endpoint: pipelines_project_commit_path(project, commit.id, ref: ref) } }

        .commit-sha-group
          .label.label-monospace
            = commit.short_id
          = clipboard_button(text: commit.id, title: _("Copy commit SHA to clipboard"), class: "btn btn-default", container: "body")
          = link_to_browse_code(project, commit)
